
package sft.Autenticacao;

import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import sft.Autenticacao.perfil.PerfilControle;
import sft.Autenticacao.perfil.logica.PerfilAcesso;
import sft.Logica.Usuario;

public class  Sessao {
    
    private static Sessao instance = null;
    private Usuario usuario;
    private String servidor;
    
    private Sessao() {
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public String getServidor() {
        return servidor;
    }

    public void setServidor(String servidor) {
        this.servidor = servidor;
    }
    
    public static Sessao getInstance() {
        if (instance == null) {
            instance = new Sessao();
        }
        return instance;
    }
    public static void UpdateInstance() {
        try {
            
            List<Usuario> lista = UserList.getInstance().getLista();
            for (int i = 0; i < lista.size(); i++) {
                if(getInstance().getUsuario().getId() == lista.get(i).getId()){
                    getInstance().getUsuario().setPerfil(lista.get(i).getPerfil());
                }
                
            }
            
            PerfilControle p = new PerfilControle();
            List<PerfilAcesso> list = p.getList(getInstance().getUsuario().getPerfil(), true);
            
            for (int i = 0; i < list.size(); i++) {
                if (getInstance().getUsuario().getPerfil().getId() == list.get(i).getId()) {
                    getInstance().getUsuario().setPerfil(list.get(i));
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(Sessao.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
